<?php if ( ! defined('BASEPATH')) exit('No se permite acceso directo al script');
class Configuraciones {
	private $conf_cargada_desde_BD = FALSE;
	private $objCI = NULL;

	private function cargar_conf_desde_BD()
	{
		// Si no creo el super objeto de CodeIgniter, no puedo acceder a sus atributos nativos y no puedo llamar a otra librería
		if($this->objCI == NULL) {
			$this->objCI =& get_instance();
			$this->objCI->load->library('template');
		}

		$id_user_actual = $_SESSION[$this->objCI->template->getIdUserSessionName()];
		
		$objConf = new Conf_unidad_negocio();
		$objConf->where_related_conf_unidad_usuario('user_usuario_id', $id_user_actual);
		$objConf->get(1);

		if(!empty($objConf->zona_horaria)) $this->setZonaHoraria($objConf->zona_horaria);
		else $this->setZonaHoraria($this->zonaHoraria);

		$this->setNombreEmpresa($objConf->empresa);
		$this->setObjDivisa($objConf->div_divisa_id);
		$this->setObjUnidad($objConf->prod_unidad_id);
		$this->setObjLocalidad($objConf->ubic_localidad_id);

		$this->conf_cargada_desde_BD = TRUE;
	}

	# ZONA HORARIA. Por defecto, America/Argentina/Buenos_Aires
	private $zonaHoraria = 'America/Argentina/Buenos_Aires';
	public function setZonaHoraria($zona)
	{
		if (!empty($zona)) $this->zonaHoraria = trim($zona);
	}
	public function getZonaHoraria()
	{
		if(!$this->conf_cargada_desde_BD) $this->cargar_conf_desde_BD();
		return $this->zonaHoraria;
	}

	# NOMBRE DE LA EMPRESA. Por defecto, ninguna
	private $nombreEmpresa = '';
	public function setNombreEmpresa($nombre)
	{
		if(!empty($nombre)) $this->nombreEmpresa = trim($nombre);
		else $this->nombreEmpresa = 'INALTA';
	}
	public function getNombreEmpresa()
	{
		if(!$this->conf_cargada_desde_BD) $this->cargar_conf_desde_BD();
		return $this->nombreEmpresa;
	}

	# MONEDA. Por defecto, Pesos
	private $id_moneda = 2;
	private $objDivisa = NULL;
	public function setObjDivisa($id_divisa)
	{
		$this->id_moneda = $id_divisa;
		$this->objDivisa = new Div_divisa($this->id_moneda);
	}
	public function getObjDivisa()
	{
		if(!$this->conf_cargada_desde_BD) $this->cargar_conf_desde_BD();

		if(!$this->objDivisa->exists()) {
			$this->objDivisa = new Div_divisa($this->id_moneda);		
		}
		return $this->objDivisa;
	}

	# UNIDAD DE MEDIDA. Por defecto, Unidades
	private $id_unidad = 8;
	private $objUnidad = NULL;
	public function setObjUnidad($id_unidad)
	{
		$this->id_unidad = $id_unidad;
		$this->objUnidad = new Prod_unidad($this->id_unidad);
	}
	public function getObjUnidad()
	{
		if(!$this->conf_cargada_desde_BD) $this->cargar_conf_desde_BD();

		if(!$this->objUnidad->exists()) {
			$this->objUnidad = new Prod_unidad($this->id_unidad);
		}
		return $this->objUnidad;
	}

	# LOCALIDAD. Por defecto, ninguna.
	private $id_localidad = 0;
	private $objLocalidad = NULL;
	public function setObjLocalidad($id_localidad)
	{
		$this->id_localidad = $id_localidad;
		$this->objLocalidad = new Ubic_localidad($this->id_localidad);
	}
	public function getObjLocalidad()
	{
		if(!$this->conf_cargada_desde_BD) $this->cargar_conf_desde_BD();

		if(!$this->objLocalidad->exists()) {
			$this->objLocalidad = new Ubic_localidad($this->id_localidad);
		}
		return $this->objLocalidad;
	}

}
/* Fin del archivo */